//
//  main.m
//  OC01_类和对象
//
//  Created by dllo on 16/2/24.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{
    #pragma mark － 知识点一: 类和对象
    
    /**
     * 类: 由特征(实例变量)和行为(方法)组成.
     * 面向对象编程三步:定义类,创建对象(在堆区),使用对象.
     */
    
    #pragma mark － 1.1 类的定义
    
    /** 详见Person.h 和 Person.m 类文件. */
    
    #pragma mark － 1.2 创建对象
    
    #if 0
    
    //1.开辟空间
    Person *person1 = [Person alloc];
    
    //2.初始化
    person1 = [person1 init];
    
    //alloc之后必须初始化,所以通常alloc和init方法连写
    Person *person2 = [[Person alloc] init];
    
    #endif
    
    #pragma mark － 知识点2:使用对象
    
    /** 使用对象, 就是调用方法(功能). */
    
    #if 0
    //创建对象
    Person *person1 = [[Person alloc] init];
    
    //使用对象
    [person1 info];
    
    [person1 sayHi];
    
    #endif
    
    #pragma mark － 知识点3:实例变量的操作
    
    //创建对象
    Person *per1 = [[Person alloc] init];
    
    //实例变量的赋值
    per1->_name = @"zhangsan";//默认是保护权限,不可在外部访问
    per1->_age = 18;
    
    //实例变量的取值
    NSLog(@"name:%@ ", per1->_name);
    
    //调用对象方法
    [per1 info];
    return 0;
}
